package com.junzhiit.nengji.shop.dao;

import java.util.Date;
import java.util.List;

import com.bainaeco.framework.base.dao.BaseDAO;
import com.junzhiit.nengji.shop.bo.OrdersGoodsBO;
import com.junzhiit.nengji.shop.bo.RebateInfoBO;
import com.junzhiit.nengji.shop.model.OrdersGoods;

public interface OrdersGoodsDAO extends BaseDAO<OrdersGoods> {

	public List<OrdersGoodsBO> getOrderGoodsOrderId(String orderId);

	public int getTotalCount(String orderId);

	/**
	 * 
	 * TODO 根据订单ID查询订单商品
	 * 
	 * @author PeterMo
	 * @time 2018年2月24日 下午4:27:45
	 * @return List<OrdersGoodsBO>
	 */
	public List<OrdersGoodsBO> getOrderGoods(String orderId);
	
	/**
	 * 
	 * TODO 根据订单ID查询未评价的订单商品
	 * 
	 * @author Qjen
	 * @time 2018年4月25日 下午5:25:48
	 * @return List<OrdersGoodsBO>
	 *
	 */
	public List<OrdersGoodsBO> getNotEvaluateOrderGoods(String orderId);

	/**
	 * 
	 * TODO 根据商品ID查询订单数量
	 * 
	 * @author FebRosy
	 * @time 2018年3月6日 下午2:02:00
	 * @return int
	 */
	public int getOrderCountByGoodsId(String goodsId);
	
	/**
	 * 
	 * TODO 统计订单的订单商品未评价的数据
	 * 
	 * @author Qjen
	 * @time 2018年4月18日 下午4:32:06
	 * @return Integer
	 *
	 */
	public int countNotEvaluateOrderGoods(String orderId); 
	
	/**
	 * 
	 * TODO 根据订单查询订单商品
	 * @author PetetMo
	 * @time 2018年3月28日 下午3:27:06
	 * @return int
	 */
	public List<OrdersGoods> getOrderGoodsByOrderId(String orderId);

	/**
	 * 
	 * TODO 根据orderNumber查询订单商品
	 * 
	 * @author Qjen
	 * @time 2018年4月27日 上午1:49:24
	 * @return OrdersGoods
	 *
	 */
	public String getOrderGoodsByOrderNumber(String orderNumber);
	
	/**
	 * 
	 * TODO 查询7天前，返利订单商品
	 * @author PeterMo
	 * @time 2018年5月7日 下午4:31:08
	 * @return List<RebateInfoBO>
	 */
	public List<RebateInfoBO> getRebateGoods(Date date);
	
	/**
	 * 
	 * TODO 查找该订单商品是否退货及退货信息ID
	 * @author Zaki
	 * @time 2018年7月20日 下午1:55:39
	 * @return OrdersGoodsBO
	 */
	public OrdersGoodsBO getOrdersGoods(String ordersGoodsId);
	
	/**
	 * 
	 * TODO 获取所有能退货/退款的商品
	 * @author Zaki
	 * @time 2018年7月26日 上午11:35:05
	 * @return List<OrdersGoods>
	 */
	public List<OrdersGoods> getCanRefundGoods(Date confirmDate);
}
